package com.handinglian.ai.system.service;

import com.handinglian.ai.common.dto.CommonPage;
import com.handinglian.ai.system.dto.HomePageDto;
import com.handinglian.ai.system.dto.UserInfoDetailDto;
import com.handinglian.ai.system.dto.UserInfoDto;
import com.handinglian.ai.system.entity.Permission;
import com.handinglian.ai.system.entity.UserInfo;
import com.handinglian.ai.system.param.UpdatePasswordParam;
import com.handinglian.ai.system.param.UserCreateParam;
import com.handinglian.ai.system.param.UserUpdateParam;

import java.util.List;

public interface UserInfoService {
    int create(UserCreateParam userCreateParam);

    int delete(Integer id);

    int deleteBatch(String id);

    UserInfo get(Integer id);

    UserInfoDto getUserInfoDto(String account);

    UserInfo get(String account);

    UserInfoDetailDto getDetail(String account);

    UserInfo getInvalid(String account);

    int update(UserUpdateParam userUpdateParam);

    int recover(String account);

    CommonPage<UserInfoDto> listPage(String keyword, String loginPermission, Integer pageNum, Integer pageSize);

    int resetPassword(Integer id);

    List<Permission> listPermission(String account);

    int updatePassword(UpdatePasswordParam passwordParam);

    int update(Integer updatedLoginPermission, Integer id);

    HomePageDto getHomePageDate();
}
